/*
 * @Description: 
 * @Author: lwx
 * @Date: 2021-11-16 16:17:43
 * @LastEditors: lwx
 * @LastEditTime: 2022-11-26 15:05:39
 */

/**
 * @param {Function} fn 防抖函数
 * @param {Number} delay 延迟时间
 */
export function debounce(fn, delay) {
    var timer;
    return function() {
        var context = this;
        var args = arguments;
        clearTimeout(timer);
        timer = setTimeout(function() {
            fn.apply(context, args);
        }, delay);
    };
}

/**
 * @param {date} time 需要转换的时间
 * @param {String} fmt 需要转换的格式 如 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss
 */
export function formatTime(time, fmt) {
    if (!time) return '';
    else {
        const date = new Date(time);
        const o = {
            'M+': date.getMonth() + 1,
            'd+': date.getDate(),
            'H+': date.getHours(),
            'm+': date.getMinutes(),
            's+': date.getSeconds(),
            'q+': Math.floor((date.getMonth() + 3) / 3),
            S: date.getMilliseconds(),
        };
        if (/(y+)/.test(fmt))
            fmt = fmt.replace(
                RegExp.$1,
                (date.getFullYear() + '').substr(4 - RegExp.$1.length)
            );
        for (const k in o) {
            if (new RegExp('(' + k + ')').test(fmt)) {
                fmt = fmt.replace(
                    RegExp.$1,
                    RegExp.$1.length === 1 ?
                    o[k] :
                    ('00' + o[k]).substr(('' + o[k]).length)
                );
            }
        }
        return fmt;
    }
}

export function nowSize(val, initWidth = 1920) {
    let nowClientWidth = document.documentElement.clientWidth //当前视口宽度
    return val * (nowClientWidth / initWidth);
}

// 用于获取base64字符
export function getBase64(file) {
    return new Promise((resolve, reject) => {
        const reader = new FileReader()
        let imgResult = ''
        reader.readAsDataURL(file)
        reader.onload = function() {
            imgResult = reader.result
        }
        reader.onerror = function(error) {
            reject(error)
        }
        reader.onloadend = function() {
            resolve(imgResult)
        }
    })
}
//pdf文件流转url
export function conversionStreamToUrl(data) {
    let url = null
    let file = new Blob([data], { type: 'application/pdf;chartset=utf-8' })
    if (window.createObjectURL !== undefined) {
        // 通用
        url = window.createObjectURL(file)
    } else if (window.webkitURL !== undefined) {
        // 兼容谷歌
        try {
            url = window.webkitURL.createObjectURL(file)
        } catch (error) {

        }
    } else if (window.URL !== undefined) {
        // 兼容其他
        try {
            url = window.URL.createObjectURL(file)
        } catch (error) {

        }
    }
    // 将转化后url赋值
    return url
}